考慮一個具有動態分配的數組作爲成員的struct
,例如:保護const的結構的動態數組構件
struct matrix {
unsigned cols;
unsigned rows;
double* data;
};
如何可以寫像print_matrix(const matrix);
,保證數據data
點的功能,以不被修改?
能否定義類似
struct const_matrix {
const unsigned cols;
const unsigned rows;
const double* data;
};
,然後隱式轉換struct matrix
爲struct const_matrix
?
Here是爲什麼第一個版本不起作用的一個小例子。
'print_matrix(const struct matrix)'不起作用嗎?或者函數需要改變一些'matrix'的元素而不是'data'?(這對打印函數來說很奇怪...... ) – Kninnug
@Kninnug看來這個版本只保護指針'data'的值,而不是它指向的數據。在我試過的一個例子中它仍然被改變。 –