2012-11-25 2 views
1

나는 다음과 같은 데이터 구조에있다 :벡터 내에서 수정할 수없는 값이 있습니까?

disk new_disk; 

new_disk.current_file[0].name = "new name"; 

나는 오류가 얻을 expression must be a modifiable |value

:
struct file{ 
    char name[MAX_FILE_NAME]; 
    char data[BLOCK_SIZE - MAX_FILE_NAME] 
}; 

struct disk{ 
    vector<file> current_file; 
}; 

내가 뭔가를 수정하려고

내가 그렇게처럼 만든 어떤 디스크의 인덱스 0에 말을

나는 그것이 늦었다 고 느낀다. 그리고 나는 단순한 무엇인가를 이해하는 것처럼 보이지 않는다. .. 그러나 그것은 그 일을 왜하지 않느냐?

답변

4

이렇게 배열을 할당 할 수 없습니다.

char foo[500]; 
foo = "this won't work"; 

당신은 안전 할 것 strcpy

strcpy(new_disk.current_file[0].name, "new name"); 

strncpy 같은 기능을 사용할 수 있고, std::string도 안전 할 것입니다.

+0

+1'std :: string'에 +1 – Xymostech

관련 문제