第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當malloc()-相同結構時如何在結構中使用C ++字符串?

當malloc()-相同結構時如何在結構中使用C ++字符串?

C++
蕪湖不蕪 2019-09-26 10:17:28
我編寫了以下示例程序,但由于segfault崩潰。問題似乎與在結構中使用malloc和std::strings有關。#include <iostream>#include <string>#include <cstdlib>struct example {  std::string data;};int main() {  example *ex = (example *)malloc(sizeof(*ex));  ex->data = "hello world";  std::cout << ex->data << std::endl;}我不知道如何使它工作。有什么想法甚至可以使用malloc()和std::strings嗎?謝謝,博達·西多(Boda Cydo)。
查看完整描述

3 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

malloc在C ++中,您不能使用具有非平凡構造函數的類。您得到的malloc是一塊原始內存,其中不包含正確構造的對象。任何嘗試將該內存用作“真實”對象的嘗試都會失敗。

代替malloc-ing對象,使用new

example *ex = new example;

malloc通過使用以下步驟序列,也可以強制您的原始代碼使用:malloc首先是原始內存,然后是在該原始內存中構造對象:

void *ex_raw = malloc(sizeof(example));example *ex = new(ex_raw) example;

new上面使用的形式稱為“新放置”。但是,您的情況并不需要所有這些技巧。


查看完整回答
反對 回復 2019-09-26
  • 3 回答
  • 0 關注
  • 495 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號