Resultados da pesquisa a pedido "undefined-behavior"
Por que desreferenciar um ponteiro nulo é um comportamento indefinido?
De acordo com ISO C ++, desreferenciar um ponteiro nulo é um comportamento indefinido. Minha curiosidade é, por quê? Por que o padrão decidiu declarar seu comportamento indefinido? Qual é a lógica por trás dessa decisão? Dependência ...
Por que não excluir meu ponteiro exclui meu ponteiro?
Para entender melhor o novo / excluir (realmente para provar a mim mesmo com pequenos exemplos porque os destruidores virtuais são necessários para as interfaces), quero entender os vazamentos de memória, para que eu possa ter medo deles. Mas ...
Em que ponto a desreferenciação do ponteiro nulo se torna um comportamento indefinid
Se eu realmente não acessar o "objeto" não referenciado, a referência nula ainda não está definid int* p = 0; int& r = *p; // undefined? int* q = &*p; // undefined? Um exemplo um pouco mais prático: posso desreferenciar o ponteiro nulo para ...
Falha na segmentação em strcpy
considere o programa abaixo char str[5]; strcpy(str,"Hello12345678"); printf("%s",str); Ao executar este programa, ocorre uma falha de segmentaçã Mas quando strcpy é substituído pelo seguinte, o programa funciona ...
ma implementação C ++ que detecta um comportamento indefinid
Um grande número de operações em C ++ resulta em um comportamento indefinido, onde a especificação é completamente muda sobre qual deveria ser o comportamento do programa e permite que qualquer coisa aconteça. Por esse motivo, existem todos os ...
Posso tratar uma matriz 2D como uma matriz 1D contígu
Considere o seguinte código: int a[25][80]; a[0][1234] = 56; int* p = &a[0][0]; p[1234] = 56; A segunda linha invoca um comportamento indefinido? Que tal a quarta linha?
omportamento indefinido com const_cast
Eu esperava que alguém pudesse esclarecer exatamente o que se entende por comportamento indefinido em C ++. Dada a seguinte definição de classe: class Foo { public: explicit Foo(int Value): m_Int(Value) { } void SetValue(int Value) { m_Int = ...
omportamento indefinido @constexpr
Eu tenho experimentadoconstexpr. No meu compilador de teste (g ++ 4.6), isso falha ao compilar com um erro sobre o acesso fora dos limites. É um compiladorrequerido para detectar isso em tempo de compilação? #include <iostream> constexpr const ...
Macros e pós-incremento
Aqui está um comportamento macro mais estranho que eu esperava que alguém pudesse esclarecer: #define MAX(a,b) (a>b?a:b) void main(void) { int a = 3, b=4; printf("%d %d %d\n",a,b,MAX(a++,b++)); }A saída é 4 6 5. O valor de b é incrementado ...
É bem definido / legal a colocação de novo várias vezes no mesmo endereço?
(Nota: esta pergunta foi motivada ao tentar criar hackery de pré-processador para gerar uma alocação não operacional para responder a outra pergunta: Macro que aceita novo ...