C Erreur C2040? char *()' diffère dans les niveaux d'indirection de 'int ()'
Pourriez-vous s'il vous plaît corriger l'erreur dans ce code, j'obtiens cette erreur error C2040: 'tmFunc' : 'char *()'
diffère dans les niveaux d'indirection de 'int ()'
#include<stdio.h>
main()
{
char *tmStamp=tmFunc();
}
char *tmFunc()
{
char tmbuf[30];
struct tm *tm;
time_t ltime; /* calendar time */
ltime=time(NULL); /* get current cal time */
tm = localtime(<ime);
sprintf (tmbuf, "[%04d/%02d/%02d %02d:%02d:%02d]", tm->tm_year + 1900,
tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);
return(tmbuf);
}
Veuillez également l'utilisation d'une fonction principale,
Vous aussi pourriez envisager de vous êtes de retour à l'adresse d'un local char tampon dans votre
int main(void)
, et s'il vous plaît indenter ton code correctement.Vous aussi pourriez envisager de vous êtes de retour à l'adresse d'un local char tampon dans votre
tmFunc()
fonction, qui, sauf statique, (et il n'est pas) est un comportement indéfini.OriginalL'auteur Vicky | 2012-12-27
Vous devez vous connecter pour publier un commentaire.
Cation: vous adresse de retour
(tmbuf)
de variable locale.Devez copier
tmbuf[30];
la première dans la dynamique de la mémoire et de retour que.Également défini
*tmFunc()
fonction avantmain()
.J'ai corrigé ton code:
Qui est vraiment en train de travailler correctement:
il y avait des possibilités de problèmes.
OriginalL'auteur Grijesh Chauhan
Parce que vous n'avez pas à déclarer
tmFunc
avant utilisation, il est implicitement déclarée comme une fonction retournantint
.Simplement déclarer avant de l'utiliser:
OriginalL'auteur Luchian Grigore