코드 블럭을 사용하여 프로그램을 만들었지 만, 학교에서는 리눅스 시스템을 통해 컴파일해야합니다. 149 번으로 문제가 생기는 ibut 밑에서 이러한 실수를 저질렀습니다. 그 불평이 무엇인지 전혀 알지 못합니다. 누군가 나를 도울 수 있을까요?Linux 컴파일러를 사용하여 오류가 발생했지만 의미가 없어졌습니다.
In file included from matrix.cpp:9:0:
matrixClass.h: In member function âT Matrix<T>::GetData(int, int) const [with T = int]â:
matrixClass.h:149:17: instantiated from âstd::ostream& operator<<(std::ostream&, const Matrix<int>&)â
matrix.cpp:22:13: instantiated from here
matrixClass.h:131:16: warning: converting to non-pointer type âintâ from NULL
내 코드는 다음과 같습니다.
T GetData(int row, int column) const
{
if (row>=0 && row<numrows() && column>=0 && column<numcols())
{
return pData[GetRawIndex(row, column)];
}
return NULL;
}
//Output matrix arrays here.
friend ostream& operator<<(ostream& os, const Matrix<T>& matrix)
{
os << "[";
for(int i = 0; i<matrix.numrows(); i++)
{
for(int j = 0; j < matrix.numcols(); j++)
os << matrix.GetData(i,j) << " ";
os << endl;
}
os << "]" <<endl;
return os;
}
라인 myheader 그것이 INT 로 변환됩니다하지만 포인터 메신저 가정에 대한 의미, 그래서 NULL이 int 형이이기 때문에 131? – mystycs
그건 그냥 경고예요 ('-Werror'는 항상 좋은 생각입니다). 'NULL'은'int'가 아닌 포인터를 의미합니다. – chris
메신저가 완전히 잃어버린 오류에 대해서. – mystycs