• 31-01-2019, 15:42:47
    #1
    Merhabalar, bir oyun sunucum için eklenti geliştiriyorum. Ama bir yerde takıldım. Şimdi bir array veya struct kullanmak istiyorum. Bunların limitlerinin sınırsız olmasını istiyorum. Yani şu şekilde kullanmak istiyorum.

    Veriler[0][0] = 1;
    Veriler[0][1] = 1;
    Veriler[0][2] = 1;
    
    Veriler[1][0] = 2;
    Veriler[2][1] = 3;
    Veriler[3][2] = 4;
    Veriler[***][0] -> buradaki yıldızla işaretlediğim değeri bir fonksiyon ile oluşturup yeni bir id almam lazım. [0] olarak ayarladığım yeri de limitlemem yada sınırsız yapmam lazım. Bu konu hakkında yardımcı olabilir misiniz ?
  • 31-01-2019, 18:08:14
    #2
    x0rz adlı üyeden alıntı: mesajı görüntüle
    Merhabalar, bir oyun sunucum için eklenti geliştiriyorum. Ama bir yerde takıldım. Şimdi bir array veya struct kullanmak istiyorum. Bunların limitlerinin sınırsız olmasını istiyorum. Yani şu şekilde kullanmak istiyorum.

    Veriler[0][0] = 1;
    Veriler[0][1] = 1;
    Veriler[0][2] = 1;
    
    Veriler[1][0] = 2;
    Veriler[2][1] = 3;
    Veriler[3][2] = 4;
    Veriler[***][0] -> buradaki yıldızla işaretlediğim değeri bir fonksiyon ile oluşturup yeni bir id almam lazım. [0] olarak ayarladığım yeri de limitlemem yada sınırsız yapmam lazım. Bu konu hakkında yardımcı olabilir misiniz ?
    void main()
    {
    int row = 3;
    int col = 2;
    int ** array2drow = (int**)malloc(row * sizeof(int**));

    int * array2dcol = (int*)malloc(col * row * sizeof(int));

    for (int i = 0; i < row; i++)
    {
    array2drow[i] = (array2dcol + (i * col));
    }

    for (int i = 0; i < row; i++)
    {
    for (int j = 0; j < col; j++)
    {
    int oku;
    scanf("%d", &oku);
    array2drow[i][j] = oku;
    printf("array[%d][%d] = %d", i, j, array2drow[i][j]);
    }
    }

    getchar();
    }

    kodu incelersen basit bir şekilde istediğine ulaşabilirsin.
  • 31-01-2019, 20:45:12
    #3
    oguzhane adlı üyeden alıntı: mesajı görüntüle
    void main()
    {
    int row = 3;
    int col = 2;
    int ** array2drow = (int**)malloc(row * sizeof(int**));

    int * array2dcol = (int*)malloc(col * row * sizeof(int));

    for (int i = 0; i < row; i++)
    {
    array2drow[i] = (array2dcol + (i * col));
    }

    for (int i = 0; i < row; i++)
    {
    for (int j = 0; j < col; j++)
    {
    int oku;
    scanf("%d", &oku);
    array2drow[i][j] = oku;
    printf("array[%d][%d] = %d", i, j, array2drow[i][j]);
    }
    }

    getchar();
    }

    kodu incelersen basit bir şekilde istediğine ulaşabilirsin.
    Kodunuzu derledim ama hata alıyorum. Hatayı düzelttim ama sanırım sonsuz bir döngüye giriyor, oku kısmı çalışmıyor.
  • 31-01-2019, 22:09:13
    #4
    x0rz adlı üyeden alıntı: mesajı görüntüle
    Kodunuzu derledim ama hata alıyorum. Hatayı düzelttim ama sanırım sonsuz bir döngüye giriyor, oku kısmı çalışmıyor.
    bu şekilde kullanabilirsiniz.

    int ** D2ArrayCreator(int rowcount,int columncount)
    {
    int row = rowcount;
    int col = columncount;
    int ** array2drow = (int**)malloc(row * sizeof(int**));
    
    int * array2dcol = (int*)malloc(col * row * sizeof(int));
    
    for (int i = 0; i < row; i++)
    {
    array2drow[i] = (array2dcol + (i * col));
    }
    
    /*for (int i = 0; i < row; i++)
    {
    for (int j = 0; j < col; j++)
    {
    int oku;
    scanf("%d", &oku);
    array2drow[i][j] = oku;
    printf("array[%d][%d] = %d", i, j, array2drow[i][j]);
    }
    }*/
    
    return array2drow;
    }
    
    void main()
    {
    int ** arrayim = D2ArrayCreator(5, 6);
    
    getchar();
    
    
    
    }
  • 31-01-2019, 23:26:26
    #5
    Üyeliği durduruldu
       int x =10, y = 10;
       int  **deg= new int*[y];
    
    
       for(int i=0;i < y; ++i)
           deg[i] = new int[x];
    //
    //
    //
       for(int i=0;i < y; ++i)
          delete[] deg[i];
      delete[] deg;
  • 01-02-2019, 12:31:30
    #6
    Hocam peki şöyle bir şey yapabilir miyiz ?
    Ben mesela bir vector oluşturdum bunun limitini 100 olarak belirledim ve içinde hiç bir veri yok. Vectorun içerisindeki boş bir indexi tespit edip oraya veri yazdırabilir miyiz ?

    Yani örnek vermek gerekirse:

    int id = VectorBosSira();
    VectorYaz(id, 123);
    
    id = VectorBosSira();
    VectorYaz(id, 124);
    
    id = VectorBosSira();
    VectorYaz(id, 125);
    
    -> Vector İçeriği: 123[ID: 0], 124[ID: 1], 125[ID: 2]
    
    VectorSil(id, 124);
    
    -> Vector İçeriği: 123[ID: 0], 125[ID: 2]
    
    VectorYaz(id, 128);
    
    -> Vector İçeriği: 123[ID: 0], 128[ID: 1], 125[ID: 2]
    Bu şekilde istiyorum.
  • 01-02-2019, 15:38:17
    #7
    x0rz adlı üyeden alıntı: mesajı görüntüle
    Hocam peki şöyle bir şey yapabilir miyiz ?
    Ben mesela bir vector oluşturdum bunun limitini 100 olarak belirledim ve içinde hiç bir veri yok. Vectorun içerisindeki boş bir indexi tespit edip oraya veri yazdırabilir miyiz ?

    Yani örnek vermek gerekirse:

    int id = VectorBosSira();
    VectorYaz(id, 123);
    
    id = VectorBosSira();
    VectorYaz(id, 124);
    
    id = VectorBosSira();
    VectorYaz(id, 125);
    
    -> Vector İçeriği: 123[ID: 0], 124[ID: 1], 125[ID: 2]
    
    VectorSil(id, 124);
    
    -> Vector İçeriği: 123[ID: 0], 125[ID: 2]
    
    VectorYaz(id, 128);
    
    -> Vector İçeriği: 123[ID: 0], 128[ID: 1], 125[ID: 2]
    Bu şekilde istiyorum.
    #include "stdafx.h"
    #include <iostream>
    #include <vector>
    
    using namespace std;
    vector<vector<int>> vektor;
    
    void AddNewRow(int data) {
    vector<int>* v = new vector<int>;
    v->push_back(data);
    vektor.push_back(*v);
    }
    
    int getId() {
    return vektor.size() - 1;
    }
    
    int getArrayId(int id) {
    return vektor.at(id).size() - 1;
    }
    
    void AddRowArray(int id ,int data)
    {
    vektor.at(id).push_back(data);
    }
    
    int main()
    {
    AddNewRow(1); //vectorun en sonuna yeni gönderilen datayla vector oluşturur (0. index)
    int Id = getId(); // vectordeki en son id yi döner
    AddRowArray(Id, 10); // 1. vectore 2. elamana ekler
    AddRowArray(Id, 20); // 1. vectore 3. elamana ekler
    AddRowArray(Id, 30); // 1. vectore 4. elamana ekler
    AddRowArray(Id, 40); // 1. vectore 5. elamana ekler
    AddRowArray(Id, 75); // 1. vectore 6. elamana ekler
    cout << getArrayId(Id) << endl; // 1. vectorun son id sini döner
    cout << Id << ". vector " << getArrayId(Id) << ". elaman" << " degeri: "  << vektor.at(Id).at(getArrayId(Id)) << endl; // 1. vektor en son id deki değeri döner.
    AddNewRow(99); //vectorun en sonuna yeni gönderilen datayla vector oluşturur (1. index)
    Id = getId(); // vectordeki en son id yi döner
    AddRowArray(Id, 90); // 2. vectore 2. elamana ekler
    AddRowArray(Id, 54); // 2. vectore 3. elamana ekler
    AddRowArray(Id, 28); // 2. vectore 4. elamana ekler
    AddRowArray(Id, 47); // 2. vectore 5. elamana ekler
    cout << getArrayId(Id) << endl; // 2. vectorun son id sini döner
    cout << Id << ". vector " << getArrayId(Id) << ". elaman" << " degeri: " << vektor.at(Id).at(getArrayId(Id)) << endl; // 2. vektor en son id deki değeri döner.
    cout << vektor.at(Id).at(0) << endl;  // 1. vector 1. elamanın değerini döner.
    cin.ignore();
        return 0;
    }