Я делаю визуальный дисплей для указателей, используя таблицу. Первый вход для length
работает, но mychars
не читается. Я знаю, что есть новая строка после scanf
, но я не знаю, как она себя ведет. Как mychars
scanf
разобран в моем конкретном случае?scanf not reading mychars
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
int length;
printf("Length? ");
scanf("%d", &length);
char *mychars = (char *)calloc(length, sizeof(char));
printf("mychars? ");
scanf("%[^\n]s", mychars);
printf("mychars is \"%s\"\n", mychars);
printf("pointer at %p\n", mychars);
if (strlen(mychars) == length) {
printf("Address Location Value\n");
int i;
for (i = 0; i < length; i++) {
printf("%-10p *(mychars+%02d) %3c\n", (mychars+i), i, *(mychars+i));
}
} else {
print("Not right length");
}
free(mychars);
return 0;
}
Что вы подразумеваете под переменной «не работает»? –
@ пользователь3121023 спасибо. Почему это работает? –
BTW: как вы проверяете, что 'length' и длина ввода от' scanf ("% [^ \ n] s", mychars); 'fit? – deamentiaemundi