Resultados da pesquisa a pedido "undefined-behavior"

12 a resposta

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 ...

8 a resposta

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 ...

3 a resposta

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 ...

8 a resposta

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 ...

8 a resposta

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 ...

6 a resposta

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?

7 a resposta

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 = ...

2 a resposta

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 ...

8 a resposta

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 ...

3 a resposta

É 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 ...