Più chiaro di così:
codice:
#include <stdio.h>
#include <string.h>
int main (void){
const char aString1 [] = "123456";
const char * aString2 = "123456";
printf ("sizeof (aString1) = %ld;\n", sizeof (aString1));
printf ("sizeof (aString2) = %ld;\n", sizeof (aString2));
printf ("strlen (aString1) = %ld;\n", strlen (aString1));
printf ("strlen (aString2) = %ld;\n", strlen (aString2));
return 0;
}
che sul mio mac a 64 bit produce:
codice:
$ gcc -Wall -ansi -pedantic -Wextra -Wconversion main.c
$ ./a.out
sizeof (aString1) = 7;
sizeof (aString2) = 8;
strlen (aString1) = 6;
strlen (aString2) = 6;
importante: sizeof lavora a tempo compilazione, strlen in esecuzione.
ps. ok scusate l'ho fatto in C. In C++ poco cambia, e come ti suggerisce shodan usa le std::string che fai prima e meglio ;-)