В основном методе я создаю массив указателей на строку в методе добавления. Я перераспределяю размер массива и добавляю x элементов, которые я не знаю while вернувшись к главному, как я могу узнать новый размер массива, я имею в виду количество элементов int array?Как найти новый размер массива указателя на строку
Вот мой код .. (он имеет некоторые ошибки)
#include <stdio.h>
void add(char ***x);
int main()
{
char **s;
s = (char **) malloc(sizeof(char *));
int i;
add(&s);
for(i=1;i<=?????(**find the new size of the array**);i++)
puts(*s[i]);
return 0;
}
void add(char ***x)
{
- ** // alter arry add x random datas to the array of string pointer**
/*
s[1]="Hello";
s[2]="Need";
s[3]="a help";
s[4]="and help";
s[5]="for the help";
*/
char **data;
int i = 0;
for (i = 1; i <= 5; i++)
{
data = (char **) realloc(*x, 1 * sizeof(char *));
data[i] = (char *) malloc(i * sizeof(char *));
strcpy(data[i], "first");
}
}
может кто-то один, пожалуйста, указывают и исправить ошибку в коде ..
hah, upvoted, потому что реальная проблема программирования/вопрос ... плюс это заставило меня задуматься о http://c2.com/cgi/wiki?ThreeStarProgrammer снова. О, золотые старые C-времена ... (ссылка просто хорошая, она не предназначена для того, чтобы сказать, что вы не должны делать *** в своем случае - для струн - отлично) – Najzero
[Не бросайте возвращаемое значение 'malloc()' (или 'realloc()') в C] (http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc). – unwind
так как исправить ..? – Kajal