對不起,標題。我真的不知道如何定義這個問題。使用void函數指向數組
我需要聲明N個數字的整數數組,並用void函數中的隨機數填充它。然後該數組需要在main中打印。問題是我不允許在void函數中使用printf,所以只有在main中打印的方法是使用我猜測的指針。因爲我是初學者,所以我的知識是有限的。 Thx提前,並對壞英語感到抱歉。
這是我的代碼到目前爲止。當我編譯它標記分割錯誤。
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void form();
int main()
{
int N, a[100];
printf("Input index: \n");
scanf("%d", &N);
form(N, &a);
printf("Array: \n");
for (int i = 0; i < N; i++) {
printf("a[%d] = %d", i, a[i]);
}
}
void form(int N, int *ptr[100])
{
srand(time(NULL));
for (int i = 0; i < N; i++) {
*ptr[i] = rand() % 46;
}
你的編譯器應該罵你。使用正確的原型,您的代碼不符合標準並調用未定義的行爲。 (這比指針更重要。您是否跳過C書中關於函數和函數聲明的章節?) – Olaf
您可以在所需的任何函數中使用'printf'。 – user3528438
user3528438這是學校練習,教授告訴我不要使用printf。 @Olaf這個原型是否正確:void form(int,int)。函數聲明看起來很好。這就是我受教的方式。 – Misery