avertissement: l'initialisation de fait de nombre entier à partir de pointeur sans un casting

Je suis en train d'écrire un fonction qui fonctionne comme IntegerToString en utilisant la récursivité,mais la GCC vient

"its.c: In function ITS’:
its.c:26:3: warning: initialization makes integer from pointer without a cast [enabled by default]
its.c:26:3: warning: (near initialization for buffer[0]’) [enabled by default]
its.c:26:3: warning: initialization makes integer from pointer without a cast [enabled by default]
..."

Je ne sais pas comment les fixer avec elle.S'il vous plaît aider moi.

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char *Change(char *buffer,int n)
{
if(n==0){
return(buffer);
}else{
int left=n%10;         
n=n/10;                
int len=strlen(buffer);
buffer[len-1]='\0';    
char new_array[30]={NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
printf("%s\n",new_array);
new_array[0]=left+'0';   printf("NEW:%s\n",new_array);
strcat(new_array,buffer); printf("TEST:%s\n",new_array);
return(Change(new_array,n));
}
}
char *ITS(int n)
{
char buffer[30]={NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};;
return(Change(buffer,n));
}
int main()
{
int n=1729;
char *buffer=(char*)malloc(30*sizeof(char));
if(buffer==NULL)
{
printf("Malloc Fault!\n");
exit(-1);
}
buffer=ITS(1729);
printf("%s\n",buffer);
return 0;
}
  • Pourquoi essayez-vous de initailize char objets avec NULL? NULL est destiné à être utilisé avec des pointeurs. char n'est pas un pointeur, c'est un entier.
  • Je pense que vous êtes de retour d'un local (pile allouée) char tableau à un couple de points. Que ne se terminera pas bien.
  • Parce que je veux remplacer les ordures de la valeur avec rien dans le tableau.Je initailize le tableau new_array et de printf et obtenir"]�",c'est une poubelle de la valeur.Je veux remplacer.Alors, comment je peux le résoudre ti?
  • Vous devez passer de stockage de main(). Les variables locales dans SON() et Modifier() ne sont plus valables lors de leur retour.
  • Alors comment je peux résoudre ce problème?
  • Alors comment je peux changer le code?S'il vous plaît..

InformationsquelleAutor luojiebin | 2013-11-26