powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / C++ [игнор отключен] [закрыт для гостей] / Си. Освободить память 2-мерного сторкового массива
25 сообщений из 308, страница 2 из 13
Си. Освободить память 2-мерного сторкового массива
    #40129703
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

прочитал тему "Правила и рекомендации к оформлению сообщений на форуме С++"

я довольно глупые вопросы задаю для уровня этого форума.

Поэтому готов немного задонатить за решение этого вопроса.

Надо сделать этот массив
Показать как обращаться(читать-писать) к строке по адрессу типа (stroka[x][i])

С вашим уровнем знаний, уверен, для вас это 5 минут.
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129708
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я против донаторства в данном под-форуме. Но я могу перенести этот топик в Работу.
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129718
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
Я против донаторства в данном под-форуме. Но я могу перенести этот топик в Работу.


не, переносить не надо.
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129722
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T
Тут ты просто устроил утечку памяти
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
for(x=0;x<K;x++)
{
stolbetc[x] = (char**)malloc(K*sizeof(char));
	
    //далее будет выделятся память для двумерного массива		
    char** stroka = (char**)malloc(M*sizeof(char*)); //выделили память
    //выделение памяти для нужного колличества элементов в строке
    for(i=0;i<M;i++)
    {
        stroka[i] = (char*)malloc(N*sizeof(char));
    }
    /*в цикле мы будем сравнивать каждый элемент
    в одномерном массиве на предмет совпадением с элементом пробела*/

} // потерял указатель на эту память, т.к. конец зоны видимости переменной stroka 




Если
Код: plaintext
1.
char** stroka = (char**)malloc(M*sizeof(char*));


объявить до for


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
int main()
{

    //переменные для итерации
    int i,j,x=0;

	//выделение памяти для 3-мерного массива
	char*** stroka = (char***)malloc(K*sizeof(char**));
	char** stroka = (char**)malloc(M*sizeof(char*));

for(x=0;x<K;x++)
{
stroka[x] = (char**)malloc(K*sizeof(char));
	
    //далее будет выделятся память для двумерного массива		
    //char** stroka = (char**)malloc(M*sizeof(char*)); //выделение памяти для указателя на строки(первого элемента в массиве)
    //выделение памяти для нужного колличества элементов в строке
    for(i=0;i<M;i++)
    {
        stroka[i] = (char*)malloc(N*sizeof(char));
    }
    /*в цикле мы будем сравнивать каждый элемент
    в одномерном массиве на предмет совпадением с элементом пробела*/

	
//ТУТ НОРМАЛЬНО ПРИСВАИВАЕТ И ВЫВЫОДИТ	
strcpy(stroka[x],"stroka");	
printf("%s\n",stroka[x]);	
}



то ошибка:
str7.c:18:9: error: conflicting types for ‘stroka’
char** stroka = (char**)malloc(M*sizeof(char*));
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129737
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дружище. По обучению. Мой совет. Попробуй возьми бумажку в клеточку и каранадаш. И нарисуй
память. Массивы указателей и твои строки.

Указатель может выглядеть в памяти как целое число длиной 8 байтов (64 бит). Возможен вариант что и 32 бит
для старых машин или мелких устройств.

Особый указатель NULL - это ноль приведенный к типу указателя может быть терминатором
или волшебной константой которая говорит например что память для этого указателя
еще не аллоцирована или уже удалена.

Символы соотв могут быть как 1 байт так и 2 в зависимости от разных настроек окружения.
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129743
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ
Dima T,

прочитал тему "Правила и рекомендации к оформлению сообщений на форуме С++"

я довольно глупые вопросы задаю для уровня этого форума.

Поэтому готов немного задонатить за решение этого вопроса.

Надо сделать этот массив
Показать как обращаться(читать-писать) к строке по адрессу типа (stroka[x][i])

С вашим уровнем знаний, уверен, для вас это 5 минут.

С моим уровнем дохода мне донаты не интересны. Мне интересно направить в нужную сторону того кто действительно хочеть понять. Тут готов помогать бесплатно, но не готовыми решениями.

Если надо только готовое решение, то в форуме работа за донат сделают студенты чуть умнее тебя. Только им сразу всю задачу описывай.

Ты влез в очень сложную тему, она не только для новичка сложная, судя по последним постам мозг уже кипит, начался подбор места куда воткнуть строчку лишь бы скомпилировалось, это неправильно.
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129744
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ
Код: plaintext
1.
2.
3.
	//выделение памяти для 3-мерного массива
	char*** stroka = (char***)malloc(K*sizeof(char**));
	char** stroka = (char**)malloc(M*sizeof(char*));



Ты два раза объявил переменную stroka, такое ни один компилятор не пропустит.

PS Эту подсказку не учел 22426362
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129746
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
Дружище. По обучению. Мой совет. Попробуй возьми бумажку в клеточку и каранадаш. И нарисуй
память. Массивы указателей и твои строки.

Указатель может выглядеть в памяти как целое число длиной 8 байтов (64 бит). Возможен вариант что и 32 бит
для старых машин или мелких устройств.

Особый указатель NULL - это ноль приведенный к типу указателя может быть терминатором
или волшебной константой которая говорит например что память для этого указателя
еще не аллоцирована или уже удалена.

Символы соотв могут быть как 1 байт так и 2 в зависимости от разных настроек окружения.


Пока нарисовал строки.

"A" - это 1 символ.

"А1" - это два символа, объединенных в одномерный массив

{"А1", "А2", "А3"} - это уже двумерный массив.

{"А1", "А2", "А3"}
{"B1", "B2", "B3"} - это трехмерный массив
{"C1", "C2", "C3"}


Сейчас с указателями попробую.
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129748
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T
Уткъ
Код: plaintext
1.
2.
3.
	//выделение памяти для 3-мерного массива
	char*** stroka = (char***)malloc(K*sizeof(char**));
	char** stroka = (char**)malloc(M*sizeof(char*));



Ты два раза объявил переменную stroka, такое ни один компилятор не пропустит.

PS Эту подсказку не учел 22426362


А как получается сделать, чтобы за пределами if не терялся указатель?

Возможно ее там объявлять не надо вообще, ведь получается в if она второй раз объявляется и действует только там.
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129749
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T
я подбор места куда воткнуть строчку лишь бы скомпилировалось, это неправильно.


Полностью согласен, пытаюсь разобраться.
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129750
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ
Пока нарисовал строки.

Теперь пронумеруй клеточки, все подряд, пустые, непустые: 1,2,3,...,100500. Так вот указатель на строку это номер клеточки в которой начинается строка.
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129751
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
УткъПоказать как обращаться(читать-писать) к строке по адрессу типа (stroka[x][i])

Никак. С любым уровнем знания это невозможно в Си.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129752
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T
Уткъ
Пока нарисовал строки.

Теперь пронумеруй клеточки, все подряд, пустые, непустые: 1,2,3,...,100500. Так вот указатель на строку это номер клеточки в которой начинается строка.


Сделал это мысленно, до 3-й мерности.


На третей надо еще пару листов, но смысл уже проясняется.
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129753
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ
А как получается сделать, чтобы за пределами if не терялся указатель?

Нет у тебя if, есть for :)

Как начать я уже показал 22426351 , как продолжить намекнул 22426362 , еще чуть-чуть и ответ получится.

Думай, сегодня я ушел, завтра продолжим.
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129754
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T
Уткъ
А как получается сделать, чтобы за пределами if не терялся указатель?

Нет у тебя if, есть for :)

Как начать я уже показал 22426351 , как продолжить намекнул 22426362 , еще чуть-чуть и ответ получится.

Думай, сегодня я ушел, завтра продолжим.


Хорошо, спасибо :-)
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129758
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть прогресс.

Скомпилилировалось и даже пару раз отработало :-)

Вот что получилось:



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#define K 2 //количество строк
#define M 3 //количество столбцов
#define N 100 // максимальная длинна строки


int main()
{

    //переменные для итерации
    int i,j,x=0;

	//выделение памяти для 3-мерного массива
	char*** stroka = (char***)malloc(K*sizeof(char**));

for(x=0;x<K;x++)
{
	//выделение памяти для 2-мерного массива
    stroka[x] = (char**)malloc(M*sizeof(char));
	
    for(i=0;i<M;i++)
    {
		//выделение памяти для 1-мерного массива
        stroka[x][i] = (char*)malloc(N*sizeof(char));
    }


}


//printf("strcat %s \n", strcat("stroka00","0"));


//простое присваивание
strcpy(stroka[0][0],"stroka00");
strcpy(stroka[0][1],"stroka01");
strcpy(stroka[0][2],"stroka02");

strcpy(stroka[1][0],"stroka10");
strcpy(stroka[1][1],"stroka21");
strcpy(stroka[1][2],"stroka22");


//простой вывод
printf("00 %s\t",stroka[0][0]);	
printf("01 %s\t",stroka[0][1]);	
printf("02 %s\t",stroka[0][2]);	
printf("\n");
printf("10 %s\t",stroka[1][0]);	
printf("11 %s\t",stroka[1][1]);	
printf("12 %s\t",stroka[1][2]);
printf("\n");




//освобождение памяти
for(x=0;x<K;x++)
{	
       for(i=0;i<M;i++)
       {		
           free(stroka[x][i]);
       }
	free(stroka[x]);   
}
    free(stroka);




    return 0;
}





Освобождение памяти сделал аналогично выделению, но в обратном порядке.

Посмотрите пожалуйста, это рабочий вариант или опять я куда-то не туда зашел?


Еще остался один вопрос, ниже его напишу.
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129760
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уткъ

Еще остался один вопрос, ниже его напишу.


А вопрос вот какой.

Если делаю простое присваивание:

Код: plaintext
1.
strcpy(stroka[0][0],"stroka00");



Все проходит нормально.

А если пытаюсь собрать ту же строку из двух, то ошибка:

Код: plaintext
1.
strcpy(stroka[0][0],strcat("stro","ka00"));



Segmentation fault

Максимальная длинна строки задана в 100-1 символ (define N 100) и непонятно почему тут ошибка.

Складывать строки при заполнении массива надо, т.к. он будет заполняться из переменных.

Подскажите пожалуйста как правильно в массив вставить запись, сложив строки?
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129761
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уткъ
Уткъ

Еще остался один вопрос, ниже его напишу.


А вопрос вот какой.

Если делаю простое присваивание:

Код: plaintext
1.
strcpy(stroka[0][0],"stroka00");



Все проходит нормально.

А если пытаюсь собрать ту же строку из двух, то ошибка:

Код: plaintext
1.
strcpy(stroka[0][0],strcat("stro","ka00"));



Segmentation fault

Максимальная длинна строки задана в 100-1 символ (define N 100) и непонятно почему тут ошибка.

Складывать строки при заполнении массива надо, т.к. он будет заполняться из переменных.

Подскажите пожалуйста как правильно в массив вставить запись, сложив строки?




Вот так сработало, за два шага:

Код: plaintext
1.
2.
strcpy(stroka[0][0],"stro");
stroka[0][0]=strcat(stroka[0][0],"ka00");




strcat не может просто две строки сложить, надо чтобы первая уже была в памяти получается )
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129766
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ
А если пытаюсь собрать ту же строку из двух, то ошибка:

Код: plaintext
1.
strcpy(stroka[0][0],strcat("stro","ka00"));



Segmentation fault

Тебе в тестеры надо, ты умудрился откомпилировать то что не должно компилироваться. Не пользуйся тем компилятором.

"stro" это const char*, т.е. строка только для чтения, физически она распологается в сегменте памяти помеченной только для чтения, а strcat туда писать пытается, поэтому Segmentation fault

Писать можно только в stroka[0][0], поэтому делай так:
Код: plaintext
1.
2.
3.
stroka[0][0][0] = 0; // делаем пустую строку stroka[0][0]
strcat(stroka[0][0], "stro");
strcat(stroka[0][0], "ka00");



Или так как сделал тут 22426543
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129771
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ
strcat не может просто две строки сложить, надо чтобы первая уже была в памяти получается )

Не фантазируй. Он не складывает, а дописывает вторую в конец первой. Читай документацию .
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129773
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T

Тебе в тестеры надо, ты умудрился откомпилировать то что не должно компилироваться. Не пользуйся тем компилятором.


Вот такой компилятор:
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)






Dima T

"stro" это const char*, т.е. строка только для чтения, физически она распологается в сегменте памяти помеченной только для чтения, а strcat туда писать пытается, поэтому Segmentation fault


Я интуитивно догадывался что что-то не так с "stro", когда она не в переменной, а вы смогли все четко объяснить.

Спасибо :-)
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129774
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ
Есть прогресс.

Скомпилилировалось и даже пару раз отработало :-)

Вот что получилось:



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#define K 2 //количество строк
#define M 3 //количество столбцов
#define N 100 // максимальная длинна строки


int main()
{

    //переменные для итерации
    int i,j,x=0;

	//выделение памяти для 3-мерного массива
	char*** stroka = (char***)malloc(K*sizeof(char**));

for(x=0;x<K;x++)
{
	//выделение памяти для 2-мерного массива
    stroka[x] = (char**)malloc(M*sizeof(char));
	
    for(i=0;i<M;i++)
    {
		//выделение памяти для 1-мерного массива
        stroka[x][i] = (char*)malloc(N*sizeof(char));
    }


}


//printf("strcat %s \n", strcat("stroka00","0"));


//простое присваивание
strcpy(stroka[0][0],"stroka00");
strcpy(stroka[0][1],"stroka01");
strcpy(stroka[0][2],"stroka02");

strcpy(stroka[1][0],"stroka10");
strcpy(stroka[1][1],"stroka21");
strcpy(stroka[1][2],"stroka22");


//простой вывод
printf("00 %s\t",stroka[0][0]);	
printf("01 %s\t",stroka[0][1]);	
printf("02 %s\t",stroka[0][2]);	
printf("\n");
printf("10 %s\t",stroka[1][0]);	
printf("11 %s\t",stroka[1][1]);	
printf("12 %s\t",stroka[1][2]);
printf("\n");




//освобождение памяти
for(x=0;x<K;x++)
{	
       for(i=0;i<M;i++)
       {		
           free(stroka[x][i]);
       }
	free(stroka[x]);   
}
    free(stroka);




    return 0;
}





Освобождение памяти сделал аналогично выделению, но в обратном порядке.

Посмотрите пожалуйста, это рабочий вариант или опять я куда-то не туда зашел?


Еще остался один вопрос, ниже его напишу.


Почти верно, косяк тут
Код: plaintext
1.
    stroka[x] = (char**)malloc(M*sizeof(char));
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129775
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T
Уткъ
Есть прогресс.

Скомпилилировалось и даже пару раз отработало :-)

Вот что получилось:



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#define K 2 //количество строк
#define M 3 //количество столбцов
#define N 100 // максимальная длинна строки


int main()
{

    //переменные для итерации
    int i,j,x=0;

	//выделение памяти для 3-мерного массива
	char*** stroka = (char***)malloc(K*sizeof(char**));

for(x=0;x<K;x++)
{
	//выделение памяти для 2-мерного массива
    stroka[x] = (char**)malloc(M*sizeof(char));
	
    for(i=0;i<M;i++)
    {
		//выделение памяти для 1-мерного массива
        stroka[x][i] = (char*)malloc(N*sizeof(char));
    }


}


//printf("strcat %s \n", strcat("stroka00","0"));


//простое присваивание
strcpy(stroka[0][0],"stroka00");
strcpy(stroka[0][1],"stroka01");
strcpy(stroka[0][2],"stroka02");

strcpy(stroka[1][0],"stroka10");
strcpy(stroka[1][1],"stroka21");
strcpy(stroka[1][2],"stroka22");


//простой вывод
printf("00 %s\t",stroka[0][0]);	
printf("01 %s\t",stroka[0][1]);	
printf("02 %s\t",stroka[0][2]);	
printf("\n");
printf("10 %s\t",stroka[1][0]);	
printf("11 %s\t",stroka[1][1]);	
printf("12 %s\t",stroka[1][2]);
printf("\n");




//освобождение памяти
for(x=0;x<K;x++)
{	
       for(i=0;i<M;i++)
       {		
           free(stroka[x][i]);
       }
	free(stroka[x]);   
}
    free(stroka);




    return 0;
}





Освобождение памяти сделал аналогично выделению, но в обратном порядке.

Посмотрите пожалуйста, это рабочий вариант или опять я куда-то не туда зашел?


Еще остался один вопрос, ниже его напишу.


Почти верно, косяк тут
Код: plaintext
1.
    stroka[x] = (char**)malloc(M*sizeof(char));








Так должно быть?
Код: plaintext
1.
stroka[x] = (char**)malloc(M*sizeof(char*));
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129800
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уткъ, дружище. Судя по профилю ты - Postgres-щик.

Тебе действительно очень надо кодить на сях? Я почему спрашиваю. Для админ- или девопс- задачек
можно задействовать целый спектр языков которые и проще и быстрее в освоении. Ruby, Python, e.t.c.

И драйвера и клиенты PG для них давно созданы.
...
Рейтинг: 0 / 0
Си. Освободить память 2-мерного сторкового массива
    #40129801
Уткъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
Уткъ, дружище. Судя по профилю ты - Postgres-щик.

Тебе действительно очень надо кодить на сях? Я почему спрашиваю. Для админ- или девопс- задачек
можно задействовать целый спектр языков которые и проще и быстрее в освоении. Ruby, Python, e.t.c.


Нужно сделать высоконагруженное приложение с парралельными запросами и копированием данных туда-сюда на огромное количество серверов (1000+)

Поэтому выбор пал на Си (+libpq), как родной язык для PostgreSQL.

В принципе, это все работало на psql+bash, но логика стала на столько сложна, что это пора выносить на уровень приложения.

У Си оказались свои особенности, с которыми потихоньку разбираюсь.

Хорошо этот раздел форума оказался живой и тут есть реальная помощь :-)

Ну и сами понимаете, Си - это что-то реальное, основательное.

Вот, к примеру, было непонятно кое-что с копированием данных - открыл исходник PostgreSQL и взял код прям оттуда, немного адаптировав под себя.
...
Рейтинг: 0 / 0
25 сообщений из 308, страница 2 из 13
Форумы / C++ [игнор отключен] [закрыт для гостей] / Си. Освободить память 2-мерного сторкового массива
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]