Я начинаю с C программирования и сейчас изучаю структуры и использую указатели для работы с ними. Я пытался написать простую программу, которая хранит ваши личные данные (имя и день рождения) для практики, но у меня были проблемы с распределением памяти, и я явно что-то упустил - поэтому я попробовал что-то более простое, и, очевидно, я У меня проблемы с выделением памяти для строки. Я старался изо всех сил в отладке этого, но я понятия не имею, что не так.
#include<stdio.h>
#include<stdlib.h>
#include<stddef.h>
#include<string.h>
int main()
{
char DummyString[100];
printf("Enter a string to be read back to you: ");
scanf("%s",&DummyString);
printf("The string is: %s\n",DummyString);
printf("String length is %d\n",strlen(DummyString));
printf("sizeof char is %i\n",sizeof(char*));
// char DumbStringPtr=&DumbString;
char *DummyStringPtr = (char*)malloc((sizeof(char))*(strlen(DummyString)+1)); // returns 8 regardless of anything
printf("The size of the pointer would be %d\n", sizeof(DummyStringPtr));
}
В исходной программе ошибка возникла после попытки скопировать строку в выделенный указатель, что, как я полагаю, связано с нехваткой памяти (при необходимости покажет код). Я чувствую, что пропустил что-то фундаментальное, и поэтому буду признателен за любые отзывы. Я был бы очень признателен, если бы кто-нибудь дал мне понять мою ошибку. Спасибо!