读书人

请教上 小弟我这么个指针数组赋值对吗

发布时间: 2012-09-17 12:06:52 作者: rapoo

请问下 我这么个指针数组赋值对吗?
#include<stdio.h>
#define M 5
int main(int argc, char* argv[])
{
int n=4;
char *a[M];
for(int i=0;i<M;i++)
a[i]=new char[n];
printf("%d\n",sizeof(a));
for(i=0;i<M;i++)
printf("%d\n",sizeof(a[i]));
int nIndex=1;
for(i=0;i<M;i++)
{
for(int j=0;j<n;j++)
{
a[i][j]=nIndex;
nIndex++;
printf("%4d",a[i][j]);
}
printf("\n");
}
for(i=0;i<M;i++)
delete[] a[i];
return 0;


请问下 我这样给指针数组赋值对吗
不对的话 那指针数组是怎么赋值的啊?


[解决办法]
没问题啊

不过注意了

#define M 5

如果这个M是函数得出的,运行后的变量就不能这么声明了 char *a[M];

[解决办法]
那只能malloc动态申请了
[解决办法]
#define定义的就是常量
编译即确定值,
也许你想的是对的,但我感觉你表达的欠妥,好像#define的定义的M还能是变量似得。
即便定义#define M 3*4+2
什么的,也没有问题,还是那句话,define在编译阶段完成,所以M必然是常量

探讨
没问题啊

不过注意了

#define M 5

如果这个M是函数得出的,运行后的变量就不能这么声明了 char *a[M];

读书人网 >VC/MFC

热点推荐