附加到c中动态分配的数组

Sci*_*are 1 c dynamic-arrays

我尝试realloc但它没有用

这是代码.谢谢你的帮助

trial = malloc (4 * sizeof(int));

trial[0] = 1; trial[1] = 4;trial[2] = 7;trial[3] = 11;

trial = (int*)realloc(trial, sizeof(int) * 5);
trial[sizeof(trial)-1] = 23;

int a;
for(a = 0; a < sizeof(trial); a++){
        printf("TRIAL %d \n", trial[a]);
}
Run Code Online (Sandbox Code Playgroud)

输出看起来像这样

TRIAL 1 
TRIAL 4 
TRIAL 7 
TRIAL 23 
Run Code Online (Sandbox Code Playgroud)

它应该是

TRIAL 1 
TRIAL 4 
TRIAL 7 
TRIAL 11
TRIAL 23 
Run Code Online (Sandbox Code Playgroud)

Mic*_*yan 6

问题是sizeof没有告诉你数组中有多少元素; 它告诉你指针(指向第一个元素)占用了多少空间.所以sizeof,而不是元素的数量.您需要单独存储长度.