strcpy(fstudent->data.password = new_password[21]);这样写的错误是吗
时间: 2024-09-16 09:03:46 浏览: 34
VCCString-int-string-char.txt.rar_conversion_vc string
是的,这样写的错误很明显。首先,`strcpy`函数用于字符串复制,但它不能直接赋值给指针或者数组的一部分。其次,在这里,`fstudent->data.password`是一个指向字符数组的指针,而不是可以直接进行赋值操作的变量。
正确的做法应该是先分配内存,然后使用`strcpy`或者`memcpy`将新密码复制到已分配的空间:
```cpp
size_t passwordLength = strlen(new_password);
char* newPasswordCopy = new char[passwordLength + 1]; // Add one for null terminator
strcpy(newPasswordCopy, new_password); // Copy the string
// If you have a pointer to password in fstudent's data structure
fstudent->data.password = newPasswordCopy; // Assign the copied string
delete[] newPasswordCopy; // Don't forget to free the allocated memory when done
```
阅读全文