ich auf einem C-Programm zu arbeiten und ich ein seltsames Verhalten mit scanf
gefunden:Sonderbare Scanf Verhalten
#include <stdio.h>
int main() {
int *a, i;
printf("Hello, World!\n");
for (i = 0; i < 10; i++) {
scanf("%u", &a[i]);
}
for (i = 0; i < 10; i++) {
printf("%d\n", a[i]);
}
return 0;
}
Für 10 Eingang I +
und der Ausgang geschickt war wie:
1
0
239646720
32767
0
0
239646727
32767
239646771
32767
ich erwartet ein Speicherleck, könnte mir bitte jemand dieses Verhalten erklären?
Sie haben einen Zeiger 'a', aber * wo kommt Punkt es * –
Pointer UB nicht :( – ThingyWotsit
* I seltsames Verhalten, wenn ich schreibe? ein Array, das ich nicht zugewiesen habe, und dann versuchen, es zurückzulesen. Was ist los? * Ein Zeiger auf 'int' ist kein Array, und Sie können es nicht als eins verwenden. –