I need to create a char array dynamically based on the pattern length, i.e., plen. However, when I do sizeof(table), I get 8. Why am I getting 8 instead of 3?
int main() {
char *pattern = "aaa";
int plen = strlen(pattern);
char *table = new char[plen + 1];
for(int i = 0; i < plen; i++) {
table[i] = pattern[i];
}
cout << sizeof(table) << plen << table;
return 0;
}
The output I get is 83aaa...: 8 for sizeof(table), 3 for plen and aaa for table, which has the stored value of pattern.
sizeofhappens at compile time, based on the type.tablelike a string, make sure it is null terminated and then check length withstrlen.