[英]Having issues with a user defined arrays program in C
我必須編寫一個程序來編寫一個使用堆存儲數組的程序。 我有一個問題,程序在成功運行后會崩潰。 我也有一些小的美學問題,元素需要從 1 開始,並且在打印的最后一個數字上沒有逗號。 任何人都可以幫忙嗎?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int size = 0;
int* num_elements;
num_elements = (int*)malloc(sizeof(int) * 3);
printf("How many int elements will you enter?");
scanf("%d", &size);
printf("\n");
for (int k = 0; k < size; k++)
{
printf("Element %d: ", k);
scanf("%d", &num_elements[k]);
}
printf("\n");
printf("The Array stores the following values: \n\n");
for (int j = 0; j < size; j++)
{
printf("%d, ", num_elements[j]);
}
printf("\n");
free(num_elements);
num_elements = 0;
return 0;
}
如果用戶輸入的值超過 3,您最終將使用超出范圍的內存。 當您使用動態內存分配時,請充分利用它。 從用戶那里詢問size
的值,然后用它來調用malloc()
就像
int* num_elements;
printf("How many int elements will you enter?");
scanf("%d", &size);
num_elements = malloc(size * sizeof *num_elements);
然后,要打印從1
編號的元素,您可以這樣寫
printf("Element %d: ", k+1);
那說,
C
中malloc()
和 family 的返回值的討論。 .malloc()
的返回值是否成功。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.