La façon de stocker une chaîne de caractères en un pointeur de char?

J'ai une confusion avec le programme suivant

#include<stdio.h>
void main()
{
char *string;
string = (char *)malloc(5);
string = "abc";  //<<<<<<<<<< why *string="abc" is not working. How string = "abc" is working?
printf("%s", string);
}

Mais le même programme avec entier travaille

char *i;
 i=(int *)malloc(sizeof(int));
*i=4;  <<<<<<<< this is working fine
printf("%d",*i);
  • préférez toujours int main(void) sur void main()
  • Standard Avertissement : Veuillez ne pas cast, la valeur de retour de malloc() et de la famille dans C.
InformationsquelleAutor Karthick | 2015-04-07