Câu hỏi được gắn thẻ «language-lawyer»

Đối với các câu hỏi về sự phức tạp của thông số kỹ thuật chính thức hoặc có thẩm quyền của ngôn ngữ lập trình và môi trường.


1
Việc sử dụng reinterpret_cast trên bộ đệm memcpy có phải không?
Cho mã struct A {}; auto obj = new A; std::vector<unsigned char> buffer; buffer.resize(sizeof(obj)); std::memcpy(buffer.data(), &obj, sizeof(obj)); // this copies the pointer, not the object! // ... auto ptr = *reinterpret_cast<A**>(buffer.data()); // is this UB? delete ptr; là cách sử dụng reinterpret_casttrong trường hợp này UB? Tôi sẽ nói có, …



2
Tại sao một chuỗi rỗng bằng chữ trong một mảng nhiều chiều phân rã thành một con trỏ null?
Tôi muốn xác định một chuỗi chuỗi C đa chiều, được khởi tạo bởi một số chuỗi ký tự. Trong C tôi sẽ làm như sau: #include <stdio.h> const char *strArr[2][1] = { {"foo"}, {""}}; int main(void) { printf("%p\t%p\n", strArr[0][0], strArr[1][0]); return 0; } Tổng hợp gcc -std=c18 -pedantic test.cvà …

1
Trình biên dịch có thể đặt việc thực hiện một hàm hủy ảo được khai báo ngầm trong một đơn vị dịch riêng biệt không?
Đoạn mã sau sẽ biên dịch và liên kết với Visual Studio(cả 2017 và 2019 với /permissive-), nhưng không biên dịch với một trong hai gcchoặc clang. foo.h #include <memory> struct Base { virtual ~Base() = default; // (1) }; struct Foo : public Base { Foo(); // (2) struct …


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.