动态分配多个2d字符数组

时间:2015-04-24 09:43:31

标签: c arrays string

我需要定义两个字符串数组,如下所示

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的内容已损坏。

0 个答案:

没有答案