我需要定义两个字符串数组,如下所示
char *Arry1[x];
char *Arry2[y];
x常量定义为宏。
y = ( 2*(z+1))
其中z是变量。
执行程序时,我发现sizeof(Arry2)是8.为什么会这样?
另外,我正在执行以下循环
for ( i=0; i<40; i++)
{
Arry1[i] = (char*) calloc ( 1, sizeof(Arry1) );
Arry2[i] = (char*) calloc ( 1, sizeof(Arry2) );
sprintf ( Arry1[i], "%s", VarX );
sprintf ( Arry2[i], "%s", VarY );
}
VarX和VarY是从文件
读取的两个字符串当我尝试将VarY指定给Arry2[i]
时,Arry1
的内容已损坏。