---
title: HTL_thread_attr_setstack
description: "指定内存设置线程属性中的栈大小。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2300/accel/kunpengaccel_ksl_16_0108.html
sourcePath: /source/zh/kunpengboostkithistory/2300/accel/kunpengaccel_ksl_16_0108.html
indexId: dffb2a6fbb7be075ff35f84641f3d8e24d493ec98590b90d023cce720c1b3e4674
---
# HTL_thread_attr_setstack

指定内存设置线程属性中的栈大小。

#### 接口定义

int HTL_thread_attr_setstack(HTL_thread_attr_t *thread_attr, void *stackaddr, size_t stacksize);


#### 描述

HTL_thread_attr_setstack()在线程属性thread_attr中设置栈地址stackaddr和栈大小stacksize（以字节为单位）。

stackaddr指向的内存将用作创建的线程的栈区域。

- 如果stackaddr为NULL：
  在创建线程时HTL自动分配大小为stacksize的栈，此栈将由HTL运行时自动释放。


- 如果stackaddr不为NULL：
  stackaddr必须8字节对齐，使用完后用户负责释放该内存。


不建议多个线程共享同一块栈内存，因为它很容易损坏函数栈并使程序崩溃。


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| thread\_attr | HTL\_thread\_attr\_t \* | 线程属性句柄地址。 | 输入 |
| stackaddr | void \* | 栈地址。 | 输入 |
| stacksize | size\_t | 栈大小（字节）。 | 输入 |


#### 返回值

- HTL_THREAD_SUCCESS：成功。
- 其他：失败。见错误码定义。


#### 示例

```
const size_t stacksize = 32768;
stack = malloc(stacksize);
HTL_thread_attr_t attr;
ret = HTL_thread_attr_init(&attr);
ret = HTL_thread_attr_setstack(&attr, stack, stacksize);
```
