我正在嘗試爲我的C編程類中的最終項目編寫某些內容,但是我遇到了一個我無法弄清的問題。我的代碼是:嘗試將值分配給動態分配的2D數組時,程序崩潰
#include <stdio.h>
#include <stdlib.h>
char** allocateLevel(int sizeOfLevel);
int main(void)
{
char** level = allocateLevel(10);
int one, two;
for(one = 0 ; one < 10 ; one++)
{
for(two = 0 ; two < 10 ; two++)
{
level[one][two]='T'; //Crashes right here
}
}
printf("%c", level[4][5]); //tests to see if it prints
}
char** allocateLevel(int sizeOfLevel)
{
char **levelPointer;
levelPointer = (char **)malloc(sizeOfLevel * sizeof(char **));
int count = 0;
for(count = 0 ; count < sizeOfLevel ; count++)
{
levelPointer[count] = (char*) malloc(sizeOfLevel * sizeof(char*));
}
}
程序分配內存正常,但當我嘗試將值分配給的要素之一崩潰。我無法弄清楚什麼是錯誤的,我的教授沒有太多幫助。有什麼不對的嗎?
看看你的'sizeof'用法。 –
'allocateLevel()'中的'return'語句在哪裏? – cmaster
它究竟有什麼問題? – user2863558