我想知道WM_SETTEXT使用后wchar_t *指针会发生什么。
<mat-form-field>
<input
matInput
formControlName="departure_airport"
#el_departure_input
class="[ flight-travel-form__airport__input ][ typography-sub-heading ]"
value=""
placeholder="Departure"
[matAutocomplete]="auto"
/>
</mat-form-field>
<mat-autocomplete #auto="matAutocomplete">
<mat-option *ngFor="let airport of active_search_suggestions$ | async" [value]="airport" class="ten-autocomplete">
{{ airport.name.toLowerCase() }}
<br>
<span class="typography-small-text">{{ airport.iata_code }}</span>
<div *ngIf="airport.object_type === 'airport_group'"> Any Airport</div>
</mat-option>
</mat-autocomplete>
</div>
为什么删除f; 崩溃?
答案 0 :(得分:1)
您应该删除此声明:
delete f; // crashes
您通过在不 undefined behavior - ed的指针上调用delete运算符导致new。您应该只delete
new
- ed和delete[]
你new[]
编辑的内容。摘自 n4140 草案,段落 5.3.5.2 :
delete的操作数的值可以是空指针值,a 指向由前一个new-expression创建的非数组对象的指针,或 指向表示这种类的基类的子对象(1.8)的指针 对象(第10条)。如果不是,则行为未定义
请注意,在使用标准C ++时,您应该在使用指向字符串文字的指针时应用const
限定符:
const wchar_t* f = L"test";
甚至更好地使用宽字符串:
std::wstring ws = L"test";