I\'m not a C++ programmer, so I need some help with arrays. I need to assign an array of chars to some structure, e.g.
struct myStructure {
char message[40
You need to use memcpy to copy arrays.
The declaration char hello[4096];
assigns stack space for 4096 chars, indexed from 0
to 4095
.
Hence, hello[4096]
is invalid.
Why it doesn't work, if
mStr.message
andhello
have the same data type?
Because the standard says so. Arrays cannot be assigned, only initialized.
Because you can't assign to arrays -- they're not modifiable l-values. Use strcpy:
#include <string>
struct myStructure
{
char message[4096];
};
int main()
{
std::string myStr = "hello"; // I need to create {'h', 'e', 'l', 'l', 'o'}
myStructure mStr;
strcpy(mStr.message, myStr.c_str());
return 0;
}
And you're also writing off the end of your array, as Kedar already pointed out.