Подскажите пожалуйста правильно ли я, динамически распределяю память?
Добавлено: 16 май 2014, 21:52
Подскажите пожалуйста только недавно начали Си изучать и нам дали такое задание: Считать строку любой длины с клавиатуры и переделать ее в массив с динамическим выделением памяти, подскажите пожалуйста почему код не работает?
Код: Выделить всё
#include <stdio.h>
#include <stdlib.h>
#ibclude <string.h>
int main(int argc, char *argv[])
{
char *S,*p;
printf("Введите предложение");
gets(S); // считываю предложение
p = (char*)malloc(strlen(S)+1);// выделение памяти
if(!p) { //проверяю есть ли свободная память
printf("Невозможно выделить память");
return 1;
}
strcpy(p,S); //копирую строку в массив
printf(p); //вывод содержимого динамического массива
free(p); //освобождение памяти
return 0;
}