C++ mi a hiba?

C++ mi a hiba?
2013-12-15T13:41:35+01:00
2013-12-15T14:14:08+01:00
2022-08-17T17:30:34+02:00
renaldooo
Itt lenne a programsor:

#include <stdio.h>
#include <stdlib.h>
char *honev (int);
int main(){
int ho;
printf("Kerem a honap szamat! : ");
scanf("%d",&ho);

printf("%d. honap neve :%s\n",ho,honev(ho));
system("pause");
}
char *honev (int n){
static char *nev[]={
"Hibas honap",
"Januar",
"Februar",
"Marcius",
"Aprilis",
"Majus",
"Junius",
"Augusztus",
"Szeptember",
"Oktober",
"November",
"December"};
return (n<1||n>12)? nev[0]: nev[n];
}

In function 'char* honev(int)'
[Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
[Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
[Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
[Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
[Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
[Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
[Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
Mutasd a teljes hozzászólást!
Lehagytad a const-ot.

static const char *nev[]={

A sztring literál, szóval az idézőjelek közötti szöveg az egy csak olvasható adatszegmensre kerül. Régen nem így volt, mert amikor kevés memória volt a gépekben, még ilyenekkel is trükközni kellett, ezért ad csak figyelmeztetést.
Mutasd a teljes hozzászólást!

abcd