Сообщение Re: При портировании кода на линукс столкнулся с проблемой от 09.08.2019 13:07
Изменено 10.08.2019 10:59 Zhendos
Re: При портировании кода на линукс столкнулся с проблемой
Здравствуйте, gwg-605, Вы писали:
G6>Портирую код с винды на линукс/мак.
G6>
G6>GCC передает не копию лежащего в c0, а указатель на c0, и получается полный алес!
У gcc есть отличный ключ -Werror=format , с его помощью вы сможете весь свой проект
от этого ужасного кода, очень рекомендую. clang по идее тоже поддерживает этот ключ компиляции.
G6>Портирую код с винды на линукс/мак.
G6>
G6>template<typename TYPE>
G6>class ttt {
G6>public:
G6> ttt() {
G6> m_Pointer = "<null>" ;
G6> }
G6> ttt( const ttt<TYPE>& src ) {
G6> m_Pointer = src.m_Pointer ;
G6> }
G6> const TYPE* m_Pointer ;
G6>};
G6>void main() {
G6> ttt<char> c0 ;
G6> c0.m_Pointer = "Hello World!!!" ;
G6> printf( "%u--%s--%u", 0x55, c0, 0xAA ) ;
G6>}
G6>
G6>GCC передает не копию лежащего в c0, а указатель на c0, и получается полный алес!
У gcc есть отличный ключ -Werror=format , с его помощью вы сможете весь свой проект
от этого ужасного кода, очень рекомендую. clang по идее тоже поддерживает этот ключ компиляции.
Re: При портировании кода на линукс столкнулся с проблемой
Здравствуйте, gwg-605, Вы писали:
G6>Портирую код с винды на линукс/мак.
G6>
G6>GCC передает не копию лежащего в c0, а указатель на c0, и получается полный алес!
У gcc есть отличный ключ -Werror=format , с его помощью вы сможете весь свой проект
избавить от этого ужасного кода, очень рекомендую. clang по идее тоже поддерживает этот ключ компиляции.
G6>Портирую код с винды на линукс/мак.
G6>
G6>template<typename TYPE>
G6>class ttt {
G6>public:
G6> ttt() {
G6> m_Pointer = "<null>" ;
G6> }
G6> ttt( const ttt<TYPE>& src ) {
G6> m_Pointer = src.m_Pointer ;
G6> }
G6> const TYPE* m_Pointer ;
G6>};
G6>void main() {
G6> ttt<char> c0 ;
G6> c0.m_Pointer = "Hello World!!!" ;
G6> printf( "%u--%s--%u", 0x55, c0, 0xAA ) ;
G6>}
G6>
G6>GCC передает не копию лежащего в c0, а указатель на c0, и получается полный алес!
У gcc есть отличный ключ -Werror=format , с его помощью вы сможете весь свой проект
избавить от этого ужасного кода, очень рекомендую. clang по идее тоже поддерживает этот ключ компиляции.