2013-05-04 100 views
0

我想做一个动态大小的2d字符数组。每当我分配内存时,内部数组总是以与外部数组相同的大小结束。动态二维字符数组分配不正确

char **memory; 
int outer = 1000; 
int inner = 2; 

memory = (char**)malloc(outer * sizeof(char*)); 
for(i = 0; i < outer; i++){ 
    memory[i] = (char*)malloc(inner * sizeof(char)); 
} 

这导致1000行1000长度的字符数组,我不知道为什么。谁能帮忙?

+5

你是怎么检查每个'字符*'指向大小1000块? – 2013-05-04 02:11:46

+0

在'C'中,您几乎可以随时访问读取未分配空间中的数据。你确定你没有创建一个正确大小的数组吗? – 2013-05-04 02:19:23

+1

我明白了。阿德里安的评论让我意识到我是多么愚蠢。我正在视觉工作室里看着这个监视面板,当它看到每个指针后面的1000个字符时,它实际上告诉我内部char数组的大小。有没有办法让它只看2个字节之后? – Doug 2013-05-04 02:35:07

回答

0

这将导致焦炭的二维数组中行= 1000和列= 2