我的程序有問題。 我想編寫一個程序,在動態內存上創建一個變量,並從用戶輸入數字。動態內存(calloc)和指針指針[C]
然後,我想創建一個動態數組,並使用該數組的大小,但我看到一個錯誤。 爲什麼?我該如何解決它?
的問題是該行:int* numbersArr = (int*)malloc(sizeof(int) * (*number));
感謝。
#include <stdlib.h>
#include <stdio.h>
void FirstFunc();
void secondFunc(int* number);
int main(void)
{
FirstFunc();
getchar();
return 0;
}
void FirstFunc()
{
int* number = (int*)malloc(sizeof(int));
// check
if (!(number = (int*)malloc(sizeof(int))))
{
printf("Unsuccessful malloc!/ n");
return 1;
}
printf("Enter any number:");
scanf("%d", &number);
printf("%d", number);
secondFunc(number);
}
void secondFunc(int* number)
{
int i = 0;
int* numbersArr = (int*)malloc(sizeof(int) * (*number));
// check
if (!(numbersArr = (int*)malloc(sizeof(int))))
{
printf("Unsuccessful malloc!/ n");
return 1;
}
if (numbersArr)
{
for (i = 0; i < numbersArr + 1; i++)
{
scanf("%d", number);
}
}
}
'我看到一個錯誤' - 好嗎?什麼錯誤?什麼線?編譯。鏈接或運行時間? –
對不起,我認爲運行時錯誤。 line:int * numbersArr =(int *)malloc(sizeof(int)*(* number)); – Skittles
無論如何它被銷燬了:'scanf(「%d」,&number);' –